package cn.edu.cdu.group4nb.service;

import cn.edu.cdu.group4nb.po.Institution;
import cn.edu.cdu.group4nb.po.Position;
import cn.edu.cdu.group4nb.po.Recruit;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;
import java.util.Map;

public interface RecruitService {
    /**
     * 根据institution_id查询招聘用的position（包括salary）
     * @return map
     */
    List<Map<String,Object>> selectAllPositionByInstitutionId(int institutionId);
    /**
     * 查询登录用户所在机构
     * @return Institution
     */
    Institution selectInstitutionOfLoginUser(int userInfoId);
    /**
     * 根据登录用户查询其机构下的所有岗位
     * @return Position
     */
    List<Position> selectPositionByInstitutionIdOfLoginUser(int userInfoId);
    /**
     * 根据机构id和职位id查询职位现有人数
     * @return Position
     */
    int getPositionNumByInstitutionIdAndPositionId(@Param("institutionId")int institutionId, @Param("positionId")int positionId);
    /**
     * 新增招聘信息
     * @return
     */
    void insertRecruit(Recruit record);
    /**
     * 查询招聘信息
     */
    List<Map<String,Object>> selectAllRecruit();
    /**
     * 查询登录用户角色
     * @return
     */
    int getRoleIdOfLoginUser(int userInfoId);
    /**
     * 删除招聘信息
     * @return
     */
    int deleteRecruitByIds(int[] recruitId);
    /**
     * 更新招聘信息
     * @return
     */
    int updateRecruit(Recruit record);
    /**
     * 根据id招聘信息
     * @return Recruit
     */
    List<Map<String,Object>> selectRecruitById (Integer recruitId);
    /**
     * 根据id招聘信息
     * @return
     */
    int publishRecruit(Recruit record);
    /**
     * 查询已发布招聘信息
     * @return
     */
    List<Map<String,Object>> listRecruit();
}

